package com.example.micro_property_springboot.pojo.DTO.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 盘点计划响应（用于前端展示，包含关联信息）
 */
@Data
@Schema(description = "盘点计划响应数据")
public class AssetCheckPlanResponse {

    @Schema(description = "盘点计划ID")
    private Long id; // 与实体类id对应

    @Schema(description = "计划编号")
    private String planNo; // 与表字段plan_no对应

    @Schema(description = "盘点范围（ALL-全量，DEPT-部门，CATEGORY-分类）")
    private String checkScope; // 与表字段check_scope对应

    @Schema(description = "范围名称（部门名/分类名，全量时为'全部资产'）")
    private String scopeName; // 冗余字段，非表字段，用于前端展示

    @Schema(description = "盘点人ID")
    private Long checkUserId; // 与表字段check_user_id对应

    @Schema(description = "盘点人姓名")
    private String checkUserName; // 冗余字段，非表字段，关联sys_user的real_name

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "开始时间")
    private LocalDateTime startTime; // 与表字段start_time对应

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "截止时间")
    private LocalDateTime endTime; // 与表字段end_time对应

    @Schema(description = "状态（NOT_STARTED-未开始，IN_PROGRESS-进行中，COMPLETED-已完成）")
    private String status; // 与表字段status对应

    @Schema(description = "状态描述（未开始/进行中/已完成）")
    private String statusDesc; // 冗余字段，非表字段，用于前端展示中文状态

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "创建时间")
    private LocalDateTime createTime; // 与表字段create_time对应
}